package com.labo.erpcrm.dao;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;

import com.labo.erpcrm.bean.Produit;


public class ProduitDao extends GenericRepository<Produit, Integer> {
	
	public Produit GetById(Integer Id){
		Session s = HelperSessionFactory.getSession();
		Transaction trans = s.beginTransaction();
		Criteria criteria = s.createCriteria(Produit.class).add(Restrictions.eq("id", Id));
		Produit produit = (Produit) criteria.uniqueResult();
		trans.commit();
		return produit;
	}

	public Produit GetByLibelle(String libelleProduit){
		Session s = HelperSessionFactory.getSession();
		Transaction trans = s.beginTransaction();
		Criteria criteria = s.createCriteria(Produit.class).add(Restrictions.eq("libelle", libelleProduit));
		Produit produit = (Produit) criteria.uniqueResult();
		trans.commit();
		return produit;
	}

	public List<Produit> GetAllByName(String name){
		Session s = HelperSessionFactory.getSession();
		Transaction trans = s.beginTransaction();
		Criteria criteria = s.createCriteria(Produit.class).add(Restrictions.like("libelle_produit", name+"%"));
		@SuppressWarnings("unchecked")
		List<Produit> lstProduit = (List<Produit>) criteria.list();
		trans.commit();
		return lstProduit;
	}

	@SuppressWarnings("unchecked")
	public List<Produit> GetAll(){
		Session s = HelperSessionFactory.getSession();
		Transaction trans = s.beginTransaction();
		Criteria criteria = s.createCriteria(Produit.class);
		List<Produit> lst = (List<Produit>) criteria.list();
		trans.commit();
		return lst ;
	}

}

